package dao;

import conn.ConData;
import model.Updatelog;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class UpdatelogDao {
    Connection con=null;//连接数据库对象  默认值为空
    ConData conn=new ConData();//连接数据库驱动

    /**
     * 给updatelog表添加数据
     * @param updatelog 实体
     * @return
     */
    public int add(Updatelog updatelog){//参数类型 参数名  向方法里传参
        int num=0;//添加不成功
        //创建sql语句
        String sql="INSERT INTO updatelog(name,updater)VALUE(?,?)";
        //创建执行sql的对象A
        PreparedStatement ps;//带参数的执行sql语句对象
        try {
            //输出updatelog的创建人方法的值
            System.out.println(updatelog.getUpdater());
            //调用连接数据库的方法
            con=conn.getCon();
            //返回一个PreparedStatement实例
            ps=con.prepareStatement(sql);


            ps.setString(1 , updatelog.getName());
            ps.setString(2, updatelog.getUpdater());
            /* ps.setDate(3 , updatelog.getUpdatetetime());*/


            System.out.println(updatelog.getName());
            System.out.println(updatelog.getUpdater());
            num=ps.executeUpdate();//执行sql语句
            //关闭执行对象
            ps.close();
            con.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
        return num;
    }

    /**
     * 根据主键更新信息
     * @param updatelog
     * @return
     */

    public int update(Updatelog updatelog){
        int isSuccess=0;//修改未成功
        String sql="UPDATE updatelog SET name=?,updater=? WHERE updatelogid=?";//修改语句
        PreparedStatement ps;
        try{
            //调用连接数据库的方法
            con=conn.getCon();
            //返回一个PrepareStatement实例
            ps=con.prepareStatement(sql);

           /* //时间格式转换
            java.util.Date maintaintime=meetingmanage.getMaintaintime();
            java.sql.Date Maintaintime=new java.sql.Date(maintaintime.getTime());
            java.util.Date createtime=meetingmanage.getCreatetime();
            java.sql.Date Createtime=new java.sql.Date(createtime.getTime());*/

            ps.setString(1 , updatelog.getName());
            ps.setString(2, updatelog.getUpdater());
            ps.setInt(3, updatelog.getUpdatelogid());
            /* ps.setDate(3 , updatelog.getUpdatetetime());*/

            //执行修改
            isSuccess=ps.executeUpdate();
            //关闭执行对象
            ps.close();
            con.close();
        }catch (SQLException e){
            e.printStackTrace();
        }
        return isSuccess;
    }

    /*
     * 根据主键删除信息
     * */

    public int del(Updatelog updatelog){
        int isDel=0;//删除未成功
        //创建执行sql语句
        String sql="DELETE FROM updatelog WHERE updatelogid=?";
        //创建执行sql的对象
        PreparedStatement ps;
        try{
            con=conn.getCon();
            ps=con.prepareStatement(sql);
            //设置删除条件
            ps.setInt(1, updatelog.getUpdatelogid());
            //删除
            isDel=ps.executeUpdate();
            //关闭执行对象
            ps.close();
            //关闭连接对象
            con.close();
        }catch (SQLException e){
            e.printStackTrace();
        }
        return isDel;
    }

    /*
     * 根据查询条件返回查询结果
     *
     * */
    public List<Updatelog> getAll(Updatelog updatelog){
        System.out.println("进入查询方法");
        List<Updatelog> listUpdatelog=new ArrayList<Updatelog>();
        //创建sql字符串
        String str="SELECT * FROM updatelog ";
        int Updatelogid=0;
        con=conn.getCon();
        try{
            //创建执行sql的对象
            PreparedStatement ps=con.prepareStatement(str);
            System.out.println("查询语句:"+str);
            //设置查询条件

            //返回查询记录结果的记录集
            ResultSet rs=ps.executeQuery();

            //将记录集存入集合当中
            while(rs.next()){
                //声明一个实体对象
                Updatelog b=new Updatelog();
                //给对象赋值
                b.setUpdatelogid(rs.getInt(1));
                b.setName(rs.getString(2));
                b.setUpdater(rs.getString(3));

                //将对象实体添加到集合中
                listUpdatelog.add(b);

            }
            //关闭记录集
            rs.close();
            //关闭执行的sql对象
            ps.close();
            //关闭连接
            con.close();

        }catch(SQLException e){
            e.printStackTrace();
        }
        System.out.println(listUpdatelog);
        return listUpdatelog;
    }
}
